import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import { resolve } from "path";

/**
 * Vite库构建配置
 * 用于构建可发布的npm包
 * @author Ning,Li
 */
export default defineConfig({
  plugins: [vue()],
  
  build: {
    lib: {
      // 入口文件
      entry: resolve(__dirname, 'src/index.js'),
      name: 'Vue3PdfjsViewer',
      fileName: (format) => `vue3-pdfjs-viewer.${format}.js`,
      formats: ['es', 'umd']
    },
    
    rollupOptions: {
      // 确保外部化处理那些你不想打包进库的依赖
      external: ['vue'],
      output: {
        // 在UMD构建模式下为这些外部化的依赖提供一个全局变量
        globals: {
          vue: 'Vue'
        },
        // 使用命名导出，避免默认导出警告
        exports: 'named'
      }
    },
    
    // 生成源码映射
    sourcemap: true,
    
    // 清空输出目录
    emptyOutDir: true,
    
    // 优化配置
    minify: 'esbuild',
    target: 'es2015'
  },
  
  // PDF.js优化配置
  optimizeDeps: {
    exclude: ["pdfjs-dist"],
  },
  
  // 确保兼容性
  esbuild: {
    target: 'es2015'
  }
}); 